import("//llvm/utils/TableGen/tablegen.gni")

static_library("IR") {
  output_name = "LLVMCore"
  public_deps = [
    # Must be public_dep because IR's public headers include llvm-config.h.
    "//llvm/include/llvm/Config:llvm-config",
    "//llvm/include/llvm/IR:public_tablegen",
  ]
  deps = [
    "//llvm/include/llvm/IR:IntrinsicImpl",
    "//llvm/lib/BinaryFormat",
    "//llvm/lib/Remarks",
    "//llvm/lib/Support",
  ]
  sources = [
    "AbstractCallSite.cpp",
    "AsmWriter.cpp",
    "Assumptions.cpp",
    "Attributes.cpp",
    "AutoUpgrade.cpp",
    "BasicBlock.cpp",
    "BuiltinGCs.cpp",
    "Comdat.cpp",
    "ConstantFold.cpp",
    "ConstantRange.cpp",
    "Constants.cpp",
    "Core.cpp",
    "DIBuilder.cpp",
    "DataLayout.cpp",
    "DebugInfo.cpp",
    "DebugInfoMetadata.cpp",
    "DebugLoc.cpp",
    "DiagnosticHandler.cpp",
    "DiagnosticInfo.cpp",
    "DiagnosticPrinter.cpp",
    "Dominators.cpp",
    "FPEnv.cpp",
    "Function.cpp",
    "GCStrategy.cpp",
    "GVMaterializer.cpp",
    "Globals.cpp",
    "IRBuilder.cpp",
    "IRPrintingPasses.cpp",
    "InlineAsm.cpp",
    "Instruction.cpp",
    "Instructions.cpp",
    "IntrinsicInst.cpp",
    "LLVMContext.cpp",
    "LLVMContextImpl.cpp",
    "LLVMRemarkStreamer.cpp",
    "LegacyPassManager.cpp",
    "MDBuilder.cpp",
    "Mangler.cpp",
    "Metadata.cpp",
    "Module.cpp",
    "ModuleSummaryIndex.cpp",
    "Operator.cpp",
    "OptBisect.cpp",
    "Pass.cpp",
    "PassInstrumentation.cpp",
    "PassManager.cpp",
    "PassRegistry.cpp",
    "PassTimingInfo.cpp",
    "PrintPasses.cpp",
    "ProfileSummary.cpp",
    "PseudoProbe.cpp",
    "ReplaceConstant.cpp",
    "SafepointIRVerifier.cpp",
    "Statepoint.cpp",
    "StructuralHash.cpp",
    "Type.cpp",
    "TypeFinder.cpp",
    "Use.cpp",
    "User.cpp",
    "Value.cpp",
    "ValueSymbolTable.cpp",
    "Verifier.cpp",
  ]
}
